From 5717212948d2ca0e0b1296554c69b73bc8b9da15 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 17 Sep 2004 03:23:32 +0000 Subject: [PATCH] Warn if a UTF8_STRING or text/plain;charset=utf-8 roperty contains invalid Thu Sep 16 23:20:05 2004 Matthias Clasen * gtk/gtkselection.c (selection_get_text_plain): * gdk/x11/gdkselection-x11.c (make_list): Warn if a UTF8_STRING or text/plain;charset=utf-8 roperty contains invalid UTF-8. (#152845, Owen Taylor) --- ChangeLog | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-6 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gdk/x11/gdkselection-x11.c | 10 +++++++++- gtk/gtkselection.c | 21 +++++++++++++-------- 6 files changed, 50 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 18175473e5..fbb87839fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Thu Sep 16 23:20:05 2004 Matthias Clasen + + * gtk/gtkselection.c (selection_get_text_plain): + * gdk/x11/gdkselection-x11.c (make_list): Warn if a UTF8_STRING + or text/plain;charset=utf-8 roperty contains invalid + UTF-8. (#152845, Owen Taylor) + 2004-09-16 Matthias Clasen Fix #152760, Christian Persch: diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 18175473e5..fbb87839fc 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +Thu Sep 16 23:20:05 2004 Matthias Clasen + + * gtk/gtkselection.c (selection_get_text_plain): + * gdk/x11/gdkselection-x11.c (make_list): Warn if a UTF8_STRING + or text/plain;charset=utf-8 roperty contains invalid + UTF-8. (#152845, Owen Taylor) + 2004-09-16 Matthias Clasen Fix #152760, Christian Persch: diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 18175473e5..fbb87839fc 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +Thu Sep 16 23:20:05 2004 Matthias Clasen + + * gtk/gtkselection.c (selection_get_text_plain): + * gdk/x11/gdkselection-x11.c (make_list): Warn if a UTF8_STRING + or text/plain;charset=utf-8 roperty contains invalid + UTF-8. (#152845, Owen Taylor) + 2004-09-16 Matthias Clasen Fix #152760, Christian Persch: diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 18175473e5..fbb87839fc 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +Thu Sep 16 23:20:05 2004 Matthias Clasen + + * gtk/gtkselection.c (selection_get_text_plain): + * gdk/x11/gdkselection-x11.c (make_list): Warn if a UTF8_STRING + or text/plain;charset=utf-8 roperty contains invalid + UTF-8. (#152845, Owen Taylor) + 2004-09-16 Matthias Clasen Fix #152760, Christian Persch: diff --git a/gdk/x11/gdkselection-x11.c b/gdk/x11/gdkselection-x11.c index ef079dee22..13aca15cea 100644 --- a/gdk/x11/gdkselection-x11.c +++ b/gdk/x11/gdkselection-x11.c @@ -516,7 +516,15 @@ make_list (const gchar *text, } } else - str = g_strndup (p, q - p); + { + str = g_strndup (p, q - p); + if (!g_utf8_validate (str, -1, NULL)) + { + g_warning ("Error converting selection from UTF8_STRING"); + g_free (str); + str = NULL; + } + } if (str) { diff --git a/gtk/gtkselection.c b/gtk/gtkselection.c index d0ec8b8bc8..e9fab86014 100644 --- a/gtk/gtkselection.c +++ b/gtk/gtkselection.c @@ -1032,20 +1032,25 @@ selection_get_text_plain (GtkSelectionData *selection_data) charset, "UTF-8", NULL, NULL, &len, &error); g_free (tmp); - } - if (!str) + if (!str) + { + g_warning ("Error converting from %s to UTF-8: %s", + charset, error->message); + g_error_free (error); + + return NULL; + } + } + else if (!g_utf8_validate (str, -1, NULL)) { - g_warning ("Error converting from %s to UTF-8: %s", - charset, error->message); - g_error_free (error); - + g_warning ("Error converting from text/plain;charset=utf-8 to UTF-8"); + g_free (str); + return NULL; } - result = normalize_to_lf (str, len); - g_free (str); return result; -- 2.30.2